﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ODP.Model;
using ODP.Enum;

namespace ODP.Helper
{
    public class InitHelper
    {
        /// <summary>
        /// 根据各项参数初始化参数列表
        /// </summary>
        /// <param name="tt">微博类型</param>
        /// <param name="pagetime">本页起始时间（第一页：填0，向上翻页：填上一次请求返回的第一条记录时间，向下翻页：填上一次请求返回的最后一条记录时间）</param>
        /// <param name="pageflag">分页标识（0：第一页，1：向下翻页，2：向上翻页）</param>
        /// <param name="reqnum">每次请求记录的条数（1-70条）</param>
        /// <param name="type">拉取类型 0x1 原创发表 0x2 转载 0x8 回复 0x10 空回 0x20 提及 0x40 点评 如需拉取多个类型请使用|，如(0x1|0x2)得到3，此时type=3即可，填零表示拉取所有类型</param>
        /// <param name="contenttype">内容过滤。0-表示所有类型，1-带文本，2-带链接，4-图片，8-带视频，0x10-带音频</param>
        /// <returns></returns>
        public IList<QueryStringParameter> InitQueryStringParameter(TwitterType tt, long pagetime = 0, short pageflag = 0, short reqnum = 20, short type = 0, short contenttype = 0)
        {
            IList<QueryStringParameter> qspList = new List<QueryStringParameter>();

            switch(tt)
            {
                case TwitterType.QQ:
                    //本页起始时间
                    qspList.Add(new QueryStringParameter("pagetime", pagetime.ToString()));
                    //分页标识
                    qspList.Add(new QueryStringParameter("pageflag", pageflag.ToString()));
                    //每次请求记录的条数
                    qspList.Add(new QueryStringParameter("reqnum", reqnum.ToString()));
                    //拉取类型
                    qspList.Add(new QueryStringParameter("type", type.ToString()));
                    //内容过滤
                    qspList.Add(new QueryStringParameter("contenttype", contenttype.ToString()));
                    break;
            }

            return qspList;
        }

        /// <summary>
        /// 根据各项参数初始化参数列表
        /// </summary>
        /// <param name="tt">微博类型</param>
        /// <param name="pagetime">本页起始时间（第一页：填0，向上翻页：填上一次请求返回的第一条记录时间，向下翻页：填上一次请求返回的最后一条记录时间）</param>
        /// <param name="pageflag">分页标识（0：第一页，1：向下翻页，2：向上翻页）</param>
        /// <param name="reqnum">每次请求记录的条数（1-70条）</param>
        /// <param name="type">拉取类型 0x1 原创发表 0x2 转载 0x8 回复 0x10 空回 0x20 提及 0x40 点评 如需拉取多个类型请使用|，如(0x1|0x2)得到3，此时type=3即可，填零表示拉取所有类型</param>
        /// <param name="contenttype">内容过滤。0-表示所有类型，1-带文本，2-带链接，4-图片，8-带视频，0x10-带音频</param>
        /// <returns></returns>
        public void InitQueryStringParameter(ref IList<QueryStringParameter> qspList, TwitterType tt, long pagetime = 0, short pageflag = 0, short reqnum = 20, short type = 0, short contenttype = 0)
        {
            switch (tt)
            {
                case TwitterType.QQ:
                    //本页起始时间
                    qspList.Add(new QueryStringParameter("pagetime", pagetime.ToString()));
                    //分页标识
                    qspList.Add(new QueryStringParameter("pageflag", pageflag.ToString()));
                    //每次请求记录的条数
                    qspList.Add(new QueryStringParameter("reqnum", reqnum.ToString()));
                    //拉取类型
                    qspList.Add(new QueryStringParameter("type", type.ToString()));
                    //内容过滤
                    qspList.Add(new QueryStringParameter("contenttype", contenttype.ToString()));
                    break;
            }
        }

        public void InitCheckBoxListItem(ref IList<CheckBoxListItem> cbliList)
        {
            cbliList = new List<CheckBoxListItem>();

            cbliList.Add(new CheckBoxListItem("娱乐明星", "101"));
            cbliList.Add(new CheckBoxListItem("体育明星", "102"));
            cbliList.Add(new CheckBoxListItem("生活时尚", "103"));
            cbliList.Add(new CheckBoxListItem("财经", "104"));
            cbliList.Add(new CheckBoxListItem("科技网络", "105"));
            cbliList.Add(new CheckBoxListItem("文化出版", "106"));
            cbliList.Add(new CheckBoxListItem("汽车", "108"));
            cbliList.Add(new CheckBoxListItem("动漫", "109"));
            cbliList.Add(new CheckBoxListItem("游戏", "110"));
            cbliList.Add(new CheckBoxListItem("星座命理", "111"));
            cbliList.Add(new CheckBoxListItem("教育", "112"));
            cbliList.Add(new CheckBoxListItem("企业品牌", "114"));
            cbliList.Add(new CheckBoxListItem("酷站汇", "115"));
            cbliList.Add(new CheckBoxListItem("腾讯产品", "116"));
            cbliList.Add(new CheckBoxListItem("营销广告", "267"));
            cbliList.Add(new CheckBoxListItem("媒体机构", "268"));
            cbliList.Add(new CheckBoxListItem("有趣用户", "288"));
            cbliList.Add(new CheckBoxListItem("传媒人士", "294"));
            cbliList.Add(new CheckBoxListItem("政府机构", "304"));
            cbliList.Add(new CheckBoxListItem("公益慈善", "363"));
            cbliList.Add(new CheckBoxListItem("公务人员", "945"));
            cbliList.Add(new CheckBoxListItem("快乐女声", "949"));
            cbliList.Add(new CheckBoxListItem("公共名人", "950"));
            cbliList.Add(new CheckBoxListItem("花儿朵朵", "951"));

            cbliList = cbliList.OrderBy(p => p.Text).ToList();
        }
    }
}
